Data transfer between applications is a common practice. For example, the “copy and paste” procedure used among applications in a personal computing environment is well known, such as copying information from an Excel spreadsheet into a Word document. This procedure relies on the “clipboard” functionality of the operating system, which utilizes RAM to temporarily store information.
When using a “Cut” and “Copy” function from a source application, information is transferred to the clipboard, in a particular format, such as text, a bitmap, or a metafile. When a “Paste” function is subsequently selected from a destination application, a program determines whether the clipboard contains information in a format the particular program can use. If so, the information is transferred to the destination application from the clipboard.
There are fundamental limitations with respect to current data transfer capabilities between computer applications. One such limitation is the absence of a feature to copy information from an application running on computer A using one operating system to an application running on computer B using a different operating system. For example, cutting from a Windows application and pasting to a Unix application.
One typical approach to this limitation is for users to copy the content from a source machine onto a removable storage medium, such as a floppy disk, and to manually transfer the content to a destination machine by reading from the floppy disk at the destination machine. Another approach, which is applicable in a network environment, is to copy content from a source machine to a temporary directory accessible from machines on a network, for example, on a shared file server, and to transfer the content to a destination machine by reading the content from the temporary directory via the destination machine. In both of the foregoing approaches, to transfer content from one application to another or one machine to another, a user is required to create a temporary intermediate file containing the content and to perform numerous related operations with respect to copying, storing, reading, and pasting the content.
Based on the foregoing, it is clearly desirable to provide a mechanism for transferring data between applications running on different networked computers.